// pages/todos/todos.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //文本框的数据模型
    input:"",
    //任务清单数据模型
    todos:[
      {name:"learning html", completed:false},
      {name:"learning css", completed:true},
      {name:"learning javascript", completed:false},
    ],
    leftCount:2,//未完成的
    allCompleted: false

  },
  //2,拿到文本框里边的值  -》小程序的数据绑定是单向的   必须给文本注册改变时间
  inputChangeHandle: function (e) {
    this.setData({
      input: e.detail.value
    })
  },
  //1,点击按钮  触发事件 调用回调函数
  addTodoHandle: function (){
    if(!this.data.input)return
    var todos = this.data.todos
    todos.push({
      name:this.data.input,
      completed:false
    })

    //3,将这个值添加到列表中
    //必须显示的通过setData去改变数据  界面才会发生变化
    this.setData({
      todos:todos,
      input:'',
      leftCount:this.data.leftCount +1

    })
  },
  toggleTodoHandle: function (e) {
    //切换当前点中的item的完成状态
    console.log(e.currentTarget)
    var item = this.data.todos[e.currentTarget.dataset.index]
    item.completed = !item.completed
    //根据当前任务的完成状态决定增加或者减少一个
    var leftCout = this.data.leftCount +(item.completed ? -1 : 1)
    this.setData({
      todos : this.data.todos,
      leftCount: leftCout
    })
  },
  //注意冒泡问题
  removeTodoHandle: function (e) {
    var todos = this.data.todos
    //item 就splice方法中移处元素
    var item = todos.splice(e.currentTarget.dataset.index,1)[0]
    //todos中会移除掉index所指向的元素
    var leftCount = this.data.leftCount - (item.completed ? 0 : 1)
    this.setData({
      todos: todos,
      leftCount: leftCount
    })
  },
  toggleAllHandle: function (e) {
    //this在这里指向的是当前页面对象
    this.data.allCompleted = !this.data.allCompleted
    var todos = this.data.todos
    var that = this
    todos.forEach(function(item){
      item.completed = that.data.allCompleted
    })
    //全选 已完成  全不选  未完成
    var leftCount = this.data.allCompleted ? 0 : this.data.todos.length

    this.setData({
      todos: todos,
      leftCount: leftCount
    })
  },
  clearHandle: function (e) {
   //清空数组中已完成的工作任务
   var todos =[]
   this.data.todos.forEach(function(item){
     if(!item.completed){
       todos.push(item)
     }
   })
  //  var todos = this.data.todos.filter(function(item){
  //    return !item.completed
  //  })
  
  //所有的任务都清除
  // var todos = []
  //todos=> 新的未完成的任务列

    this.setData({
      todos: todos,
      
    })
  },
  


  
})